Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.03.2013, 11:32
Аспирант
Отправить личное сообщение для allanmiln Посмотреть профиль Найти все сообщения от allanmiln
 
Регистрация: 18.01.2013
Сообщений: 94

В чём разница и что лучше?
Здравствуйте!

Есть два AJAX-запроса:
function add_users() {
      //Получаем то что ввел пользователь
      var login = document.getElementById('login').value;
      var imya = document.getElementById('imya').value;
      var familiya = document.getElementById('familiya').value;
      var email = document.getElementById('email').value;
      var god = document.getElementById('god').value;
      var mesyac = document.getElementById('mesyac').value;
      var chislo = document.getElementById('chislo').value;
      var pol = document.getElementById('pol').value;
      var password = document.getElementById('password').value;


      var load1 = document.getElementById('load1');
      var answer = document.getElementById('answer');
      var answer2 = document.getElementById('answer2');

       //То что будем отправлять на сервер
      var parameter = 'login='+login+'&imya='+imya+'&familiya='+familiya+'&email='+email+'&god='+god+'&mesyac='+mesyac+'&chislo='+chislo+'&pol='+pol+'&password='+password;
        //Показываем загрузку
       answer.innerHTML = load1.innerHTML;
           //Соединяемся с аяксом
      var network = createRequestObject();
             //Тут мы выбираем метод отправки формы и куда отправляем
            network.open("POST","regis_users.php",true);
            //Кодировка формы у меня она windows-1251
            network.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=windows-1251");
             //Здесь пишем ответ от сервера то что отправить нам сервер в ответ
            network.onreadystatechange = function () {
              if(network.readyState == 4) {answer.innerHTML = ''; answer2.innerHTML = network.responseText;  }
            }
            //Отправляем запрос
             network.send(parameter);
    }
		//Подключаемся к аяксу
		function createRequestObject() {
		try { return new XMLHttpRequest() }
		catch(e) {
			try { return new ActiveXObject('Msxml2.XMLHTTP') }
			catch(e) {
				try { return new ActiveXObject('Microsoft.XMLHTTP') }
				catch(e) { return null; }
			}
		}
	}



И такой код:
jQuery(document).ready(function($) {

$("#ajax-contact-form").submit(function() {
 var str = $(this).serialize();

$.ajax({
 type: "POST",
 url: "contact.php",
 data: str,
 success: function(msg) {

if(msg == 'OK') {
 result = '<div class="notification_ok">Ваше сообщение было отправлено</div>';
 $("#fields").hide();
 } else {
 result = msg;
 }
 $('#note').html(result);
 }
 });
 return false;
 });
 });


Собственно в чём разница, почему в первом есть какие-то соединения и т.д., а во втором всё как-то проще? И что более грамотно и лучше?
Ответить с цитированием
  #2 (permalink)  
Старый 10.03.2013, 12:09
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

В первом случае код не требует подключения никаких библиотек. Во втором - требуется подключение jQuery (90кб не-gzip). Какой код использовать - нельзя однозначно сказать. Если на странице ничего кроме этого кода нет - то подключать 90кб кода ради пары действий - глупо. С другой стороны если подгружать jquery с Google (или яндекс) CDN, то разницы особой и нет.
Ответить с цитированием
  #3 (permalink)  
Старый 10.03.2013, 12:28
Аспирант
Отправить личное сообщение для allanmiln Посмотреть профиль Найти все сообщения от allanmiln
 
Регистрация: 18.01.2013
Сообщений: 94

Ну у меня так и так подключается jQuery.
Ответить с цитированием
  #4 (permalink)  
Старый 10.03.2013, 12:48
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Тогда конечно второй вариант. Зачем велосипедить если все уже включено в jQuery?
Ответить с цитированием
  #5 (permalink)  
Старый 12.03.2013, 14:51
Аспирант
Отправить личное сообщение для allanmiln Посмотреть профиль Найти все сообщения от allanmiln
 
Регистрация: 18.01.2013
Сообщений: 94

А как вообще с безопасностью?
Безопасно ли передавать таким способом информацию?
Злой хацкер может что-то сделать?
Ответить с цитированием
  #6 (permalink)  
Старый 12.03.2013, 18:48
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от allanmiln
А как вообще с безопасностью?
А это каким боком к теме относится?
Сообщение от allanmiln
Злой хацкер может что-то сделать?
С чем? С xhr-запросом? Не больше не меньше чем с простым http-запросом. Если ваш трафик прослушивается, то поможет только https (правда я в безопасности чайник, могу ошибаться)
Ну и не нужно забывать об XSS. Вообще - не доверяйте ничему, что приходит от клиента.
Ответить с цитированием
  #7 (permalink)  
Старый 13.03.2013, 13:24
Аспирант
Отправить личное сообщение для allanmiln Посмотреть профиль Найти все сообщения от allanmiln
 
Регистрация: 18.01.2013
Сообщений: 94

Значит это простые http-запросы?
Просто как-то читал на википедии, что с появлением AJAX, появились новые уязвимости. Вот и заинтересовался.
Ответить с цитированием
  #8 (permalink)  
Старый 13.03.2013, 14:25
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от allanmiln
Просто как-то читал на википедии
Ну это не серьезно же. Давай ссылку на статью, тогда и обсудим.
Ответить с цитированием
  #9 (permalink)  
Старый 13.03.2013, 19:14
Аспирант
Отправить личное сообщение для allanmiln Посмотреть профиль Найти все сообщения от allanmiln
 
Регистрация: 18.01.2013
Сообщений: 94

http://ru.wikipedia.org/wiki/Уязвимости_AJAX
Ответить с цитированием
  #10 (permalink)  
Старый 13.03.2013, 19:38
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

С появлением любой новой технологии появляютя новые уязвимости. Так как хреновый прогер наделает дыр всюду, куда дотянется его рука.
Часть статьи вообще не относится конкретно к XHR.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery bind/on click или JavaScript onClick - что и в каких случаях лучше юзать IVAN86 Events/DOM/Window 21 06.07.2012 08:31
На чем лучше писать online javascript шахматы bombascter Серверные языки и технологии 38 28.04.2012 09:43
О фрилансе (Личный опыт) free Оффтопик 105 18.08.2011 17:02
Разбираем AjaxOOP eai Общие вопросы Javascript 41 04.11.2010 23:37
.snapshotLength и просто .length в чём разница BIOHAZARD Events/DOM/Window 2 30.11.2008 18:20